package cn.edu.dyxy.service;

import cn.edu.dyxy.dao.UserDao;
import cn.edu.dyxy.entity.User;

import java.sql.SQLException;

/**
 * 业务层
 *
 * @author JokerQiu
 * @date 2021年12月22日 10:49
 */

public class UserService {
    private UserDao userDao = new UserDao();

    /**
     * 业务逻辑，保存注册用户信息
     *
     * @param user 用户对象
     * @return row 数据库操作后，显示的影响行数
     */
    public int saveUsers(User user) {
        int row = 0;
        try {
            row = userDao.saveUser(user);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return row;
    }

    /**
     * 验证邮箱是否存在
     *
     * @param email 被检测的邮箱
     * @return 如果传入被检测的邮箱不在数据库中，user的值就是null
     * 那么checkEmali就回返回一个true，证明这个邮箱可以注册
     * 如果传入被检测的邮箱在数据库中，user的值就是一个结果集
     * checkEmail返回false，证明这个邮箱不能被注册，
     * 需要在前端显示邮箱已经被注册
     */
    public boolean checkEmail(String email) {
        User user = null;
        try {
            user = userDao.getUserByEmail(email);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return user == null ? true : false;
    }

    /**
     * 登陆
     *
     * @param email    邮箱
     * @param password 密码
     * @return 用户信息
     */
    public User login(String email, String password) {
        User user = null;
        try {
            //通过邮箱获取用户的信息
            user = userDao.getUserByEmail(email);
            //判断邮箱和密码是否与数据库中的信息一致
            if (user != null && !user.getPassword().equals(password)) {
                //如果user是null 的话，if条件为false，方法直接返回null
                //如果user不是null，但是密码与输入密码不一致，也同样返回null告诉
                //客户端，输入的用户名或密码错误
                user = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return user;
    }
}
